#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__

#include "cocos2d.h"

#include "Box2D/Box2D.h"

#include "SimpleAudioEngine.h"
#include "PhysicsWorld.h"
#include "Marble.h"


class HelloWorld : public cocos2d::CCLayer
{
public:
    // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
    virtual bool init();  

    // there's no 'id' in cpp, so we recommand to return the exactly class pointer
    static cocos2d::CCScene* scene();
    
    // a selector callback
    void menuCloseCallback(CCObject* pSender);

    // implement the "static node()" method manually
    CREATE_FUNC(HelloWorld);

	void draw();

    void tick(float dt);

	void AddNewMarble(cocos2d::CCPoint p);

	//call_back
	virtual void ccTouchesBegan(cocos2d::CCSet *touches, cocos2d::CCEvent* _event);
	//virtual void ccTouchesMoved(cocos2d::CCSet *touches,cocos2d::CCEvent *_event);

	virtual void ccTouchesEnded(cocos2d::CCSet *touches,cocos2d::CCEvent *_event);
    //virtual void ccTouchesCancelled(cocos2d::CCSet *touches, cocos2d::CCEvent *_event);

public:
	PhysicsWorld* phyWorld;

	Marble* cur_marble;
	cocos2d::CCPoint marble_begin_pos;
	int  marble_begin_time;

	cocos2d::CCTexture2D* m_pSpriteTexture;    

	Settings	  settings;
};

#endif  // __HELLOWORLD_SCENE_H__